iT邦幫忙

2024 iThome 鐵人賽

DAY 15
0
AI/ ML & Data

Let's Go To The AI Party!系列 第 16

Day15-非監督式學習

  • 分享至 

  • xImage
  •  

非監督式學習(Unsupervised learning)

是一類機器學習演算法,其目的在於從未標記的資料中找出潛在的結構、模式或關係。與監督式學習不同,非監督式學習不需要事先提供正確答案,而是讓演算法自行探索資料中的隱藏資訊

非監督式學習演算法

  • 聚類分析(Clustering):將資料分為數個群組,使同一個群組內的資料相似度高,不同群組之間的資料相似度低
    • K-Means Clustering:隨機選取K個初始中心點,將每個資料點分配到最近的中心點,並重新計算中心點,重複此過程直到中心點不再變化
    • DBSCAN:根據資料點密度將資料分群,能發現任意形狀群組
    • Hierarchical Clustering:將資料點逐層合併或分裂,形成樹狀結構
  • 降維(Dimensionality Reduction):將高維度的資料轉換為低維度的表示,同時保留原資料主要資訊
    • PCA(Principal Component Analysis):找到資料變異量最大的方向,將資料投影到這些方向上
    • t-SNE:將高維資料映射到低維空間,同時保留資料的局部和全局結構
  • 異常檢測(Anomaly Detection):找出與大多數資料點顯著不同資料點
    • Isolation Forest:將資料點隨機切割,計算資料點被隔離所需切割的次數,異常點通常需要較少的切割次數

DBSCAN

from sklearn.cluster import DBSCAN
clustering = DBSCAN(eps=3, min_samples=2).fit(X)

PCA (Principal Component Analysis)

求解協方差矩陣的特徵向量和特徵值
選取前k個最大的特徵值對應的特徵向量作為投影矩陣

from sklearn.decomposition import PCA
pca = PCA(n_components=2)
X_reduced = pca.fit_transform(X)

https://ithelp.ithome.com.tw/upload/images/20240815/20163257PXXwMwQiXF.png
圖片來源:Dimensionality Reduction(PCA and LDA) with Practical Implementation

t-SNE(t-Distributed Stochastic Neighbor Embedding)

基於概率分布非線性降維方法,通常可視化高維數據

https://ithelp.ithome.com.tw/upload/images/20240815/20163257h3HjWMNHPr.png
圖片來源:(https://www.researchgate.net/figure/Comparison-of-dimensionality-reduction-methods-PCA-ISOMAP-and-t-SNE-are-performed-on_fig10_308546668)

from sklearn.manifold import TSNE
tsne = TSNE(n_components=2, random_state=0)
X_embedded = tsne.fit_transform(X)

程式碼範例(Python-Scikit-learn)

from sklearn.cluster import KMeans
from sklearn.decomposition import PCA
from sklearn.datasets import load_iris

# 載入鳶尾花資料集
iris = load_iris()
X = iris.data
y = iris.target

# K-means聚類
kmeans = KMeans(n_clusters=3, random_state=0).fit(X)
print(kmeans.labels_)

# PCA降維
pca = PCA(n_components=2)
X_reduced = pca.fit_transform(X)

上一篇
Day14-半監督式學習
下一篇
Day16-強化機器學習
系列文
Let's Go To The AI Party!31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言